﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using Helpers;
using TaleWorlds.CampaignSystem.Actions;
using TaleWorlds.CampaignSystem.Election;
using TaleWorlds.CampaignSystem.GameState;
using TaleWorlds.CampaignSystem.Party;
using TaleWorlds.CampaignSystem.Party.PartyComponents;
using TaleWorlds.CampaignSystem.Settlements;
using TaleWorlds.Core;
using TaleWorlds.Library;
using TaleWorlds.Localization;
using TaleWorlds.ObjectSystem;
using TaleWorlds.SaveSystem;
using TaleWorlds.SaveSystem.Load;

namespace TaleWorlds.CampaignSystem
{
	// Token: 0x0200005E RID: 94
	public sealed class Kingdom : MBObjectBase, IFaction
	{
		// Token: 0x06000C68 RID: 3176 RVA: 0x00040952 File Offset: 0x0003EB52
		internal static void AutoGeneratedStaticCollectObjectsKingdom(object o, List<object> collectedObjects)
		{
			((Kingdom)o).AutoGeneratedInstanceCollectObjects(collectedObjects);
		}

		// Token: 0x06000C69 RID: 3177 RVA: 0x00040960 File Offset: 0x0003EB60
		protected override void AutoGeneratedInstanceCollectObjects(List<object> collectedObjects)
		{
			base.AutoGeneratedInstanceCollectObjects(collectedObjects);
			collectedObjects.Add(this._unresolvedDecisions);
			collectedObjects.Add(this._rulingClan);
			collectedObjects.Add(this._armies);
			collectedObjects.Add(this._activePolicies);
			collectedObjects.Add(this.Name);
			collectedObjects.Add(this.InformalName);
			collectedObjects.Add(this.EncyclopediaText);
			collectedObjects.Add(this.EncyclopediaTitle);
			collectedObjects.Add(this.EncyclopediaRulerTitle);
			collectedObjects.Add(this.Culture);
			collectedObjects.Add(this.InitialHomeLand);
			collectedObjects.Add(this.Banner);
			CampaignTime.AutoGeneratedStaticCollectObjectsCampaignTime(this.LastKingdomDecisionConclusionDate, collectedObjects);
			CampaignTime.AutoGeneratedStaticCollectObjectsCampaignTime(this.LastMercenaryOfferTime, collectedObjects);
			CampaignTime.AutoGeneratedStaticCollectObjectsCampaignTime(this.NotAttackableByPlayerUntilTime, collectedObjects);
		}

		// Token: 0x06000C6A RID: 3178 RVA: 0x00040A37 File Offset: 0x0003EC37
		internal static object AutoGeneratedGetMemberValueName(object o)
		{
			return ((Kingdom)o).Name;
		}

		// Token: 0x06000C6B RID: 3179 RVA: 0x00040A44 File Offset: 0x0003EC44
		internal static object AutoGeneratedGetMemberValueInformalName(object o)
		{
			return ((Kingdom)o).InformalName;
		}

		// Token: 0x06000C6C RID: 3180 RVA: 0x00040A51 File Offset: 0x0003EC51
		internal static object AutoGeneratedGetMemberValueEncyclopediaText(object o)
		{
			return ((Kingdom)o).EncyclopediaText;
		}

		// Token: 0x06000C6D RID: 3181 RVA: 0x00040A5E File Offset: 0x0003EC5E
		internal static object AutoGeneratedGetMemberValueEncyclopediaTitle(object o)
		{
			return ((Kingdom)o).EncyclopediaTitle;
		}

		// Token: 0x06000C6E RID: 3182 RVA: 0x00040A6B File Offset: 0x0003EC6B
		internal static object AutoGeneratedGetMemberValueEncyclopediaRulerTitle(object o)
		{
			return ((Kingdom)o).EncyclopediaRulerTitle;
		}

		// Token: 0x06000C6F RID: 3183 RVA: 0x00040A78 File Offset: 0x0003EC78
		internal static object AutoGeneratedGetMemberValueCulture(object o)
		{
			return ((Kingdom)o).Culture;
		}

		// Token: 0x06000C70 RID: 3184 RVA: 0x00040A85 File Offset: 0x0003EC85
		internal static object AutoGeneratedGetMemberValueInitialHomeLand(object o)
		{
			return ((Kingdom)o).InitialHomeLand;
		}

		// Token: 0x06000C71 RID: 3185 RVA: 0x00040A92 File Offset: 0x0003EC92
		internal static object AutoGeneratedGetMemberValueLabelColor(object o)
		{
			return ((Kingdom)o).LabelColor;
		}

		// Token: 0x06000C72 RID: 3186 RVA: 0x00040AA4 File Offset: 0x0003ECA4
		internal static object AutoGeneratedGetMemberValueColor(object o)
		{
			return ((Kingdom)o).Color;
		}

		// Token: 0x06000C73 RID: 3187 RVA: 0x00040AB6 File Offset: 0x0003ECB6
		internal static object AutoGeneratedGetMemberValueColor2(object o)
		{
			return ((Kingdom)o).Color2;
		}

		// Token: 0x06000C74 RID: 3188 RVA: 0x00040AC8 File Offset: 0x0003ECC8
		internal static object AutoGeneratedGetMemberValueAlternativeColor(object o)
		{
			return ((Kingdom)o).AlternativeColor;
		}

		// Token: 0x06000C75 RID: 3189 RVA: 0x00040ADA File Offset: 0x0003ECDA
		internal static object AutoGeneratedGetMemberValueAlternativeColor2(object o)
		{
			return ((Kingdom)o).AlternativeColor2;
		}

		// Token: 0x06000C76 RID: 3190 RVA: 0x00040AEC File Offset: 0x0003ECEC
		internal static object AutoGeneratedGetMemberValuePrimaryBannerColor(object o)
		{
			return ((Kingdom)o).PrimaryBannerColor;
		}

		// Token: 0x06000C77 RID: 3191 RVA: 0x00040AFE File Offset: 0x0003ECFE
		internal static object AutoGeneratedGetMemberValueSecondaryBannerColor(object o)
		{
			return ((Kingdom)o).SecondaryBannerColor;
		}

		// Token: 0x06000C78 RID: 3192 RVA: 0x00040B10 File Offset: 0x0003ED10
		internal static object AutoGeneratedGetMemberValueMainHeroCrimeRating(object o)
		{
			return ((Kingdom)o).MainHeroCrimeRating;
		}

		// Token: 0x06000C79 RID: 3193 RVA: 0x00040B22 File Offset: 0x0003ED22
		internal static object AutoGeneratedGetMemberValueBanner(object o)
		{
			return ((Kingdom)o).Banner;
		}

		// Token: 0x06000C7A RID: 3194 RVA: 0x00040B2F File Offset: 0x0003ED2F
		internal static object AutoGeneratedGetMemberValueLastArmyCreationDay(object o)
		{
			return ((Kingdom)o).LastArmyCreationDay;
		}

		// Token: 0x06000C7B RID: 3195 RVA: 0x00040B41 File Offset: 0x0003ED41
		internal static object AutoGeneratedGetMemberValueLastKingdomDecisionConclusionDate(object o)
		{
			return ((Kingdom)o).LastKingdomDecisionConclusionDate;
		}

		// Token: 0x06000C7C RID: 3196 RVA: 0x00040B53 File Offset: 0x0003ED53
		internal static object AutoGeneratedGetMemberValueLastMercenaryOfferTime(object o)
		{
			return ((Kingdom)o).LastMercenaryOfferTime;
		}

		// Token: 0x06000C7D RID: 3197 RVA: 0x00040B65 File Offset: 0x0003ED65
		internal static object AutoGeneratedGetMemberValueNotAttackableByPlayerUntilTime(object o)
		{
			return ((Kingdom)o).NotAttackableByPlayerUntilTime;
		}

		// Token: 0x06000C7E RID: 3198 RVA: 0x00040B77 File Offset: 0x0003ED77
		internal static object AutoGeneratedGetMemberValueMercenaryWallet(object o)
		{
			return ((Kingdom)o).MercenaryWallet;
		}

		// Token: 0x06000C7F RID: 3199 RVA: 0x00040B89 File Offset: 0x0003ED89
		internal static object AutoGeneratedGetMemberValuePoliticalStagnation(object o)
		{
			return ((Kingdom)o).PoliticalStagnation;
		}

		// Token: 0x06000C80 RID: 3200 RVA: 0x00040B9B File Offset: 0x0003ED9B
		internal static object AutoGeneratedGetMemberValue_unresolvedDecisions(object o)
		{
			return ((Kingdom)o)._unresolvedDecisions;
		}

		// Token: 0x06000C81 RID: 3201 RVA: 0x00040BA8 File Offset: 0x0003EDA8
		internal static object AutoGeneratedGetMemberValue_rulingClan(object o)
		{
			return ((Kingdom)o)._rulingClan;
		}

		// Token: 0x06000C82 RID: 3202 RVA: 0x00040BB5 File Offset: 0x0003EDB5
		internal static object AutoGeneratedGetMemberValue_armies(object o)
		{
			return ((Kingdom)o)._armies;
		}

		// Token: 0x06000C83 RID: 3203 RVA: 0x00040BC2 File Offset: 0x0003EDC2
		internal static object AutoGeneratedGetMemberValue_activePolicies(object o)
		{
			return ((Kingdom)o)._activePolicies;
		}

		// Token: 0x06000C84 RID: 3204 RVA: 0x00040BCF File Offset: 0x0003EDCF
		internal static object AutoGeneratedGetMemberValue_isEliminated(object o)
		{
			return ((Kingdom)o)._isEliminated;
		}

		// Token: 0x06000C85 RID: 3205 RVA: 0x00040BE1 File Offset: 0x0003EDE1
		internal static object AutoGeneratedGetMemberValue_aggressiveness(object o)
		{
			return ((Kingdom)o)._aggressiveness;
		}

		// Token: 0x06000C86 RID: 3206 RVA: 0x00040BF3 File Offset: 0x0003EDF3
		internal static object AutoGeneratedGetMemberValue_tributeWallet(object o)
		{
			return ((Kingdom)o)._tributeWallet;
		}

		// Token: 0x06000C87 RID: 3207 RVA: 0x00040C05 File Offset: 0x0003EE05
		internal static object AutoGeneratedGetMemberValue_kingdomBudgetWallet(object o)
		{
			return ((Kingdom)o)._kingdomBudgetWallet;
		}

		// Token: 0x17000301 RID: 769
		// (get) Token: 0x06000C88 RID: 3208 RVA: 0x00040C17 File Offset: 0x0003EE17
		// (set) Token: 0x06000C89 RID: 3209 RVA: 0x00040C1F File Offset: 0x0003EE1F
		[SaveableProperty(1)]
		public TextObject Name { get; private set; }

		// Token: 0x17000302 RID: 770
		// (get) Token: 0x06000C8A RID: 3210 RVA: 0x00040C28 File Offset: 0x0003EE28
		// (set) Token: 0x06000C8B RID: 3211 RVA: 0x00040C30 File Offset: 0x0003EE30
		[SaveableProperty(2)]
		public TextObject InformalName { get; private set; }

		// Token: 0x17000303 RID: 771
		// (get) Token: 0x06000C8C RID: 3212 RVA: 0x00040C39 File Offset: 0x0003EE39
		// (set) Token: 0x06000C8D RID: 3213 RVA: 0x00040C41 File Offset: 0x0003EE41
		[SaveableProperty(3)]
		public TextObject EncyclopediaText { get; private set; }

		// Token: 0x17000304 RID: 772
		// (get) Token: 0x06000C8E RID: 3214 RVA: 0x00040C4A File Offset: 0x0003EE4A
		// (set) Token: 0x06000C8F RID: 3215 RVA: 0x00040C52 File Offset: 0x0003EE52
		[SaveableProperty(4)]
		public TextObject EncyclopediaTitle { get; private set; }

		// Token: 0x17000305 RID: 773
		// (get) Token: 0x06000C90 RID: 3216 RVA: 0x00040C5B File Offset: 0x0003EE5B
		// (set) Token: 0x06000C91 RID: 3217 RVA: 0x00040C63 File Offset: 0x0003EE63
		[SaveableProperty(5)]
		public TextObject EncyclopediaRulerTitle { get; private set; }

		// Token: 0x17000306 RID: 774
		// (get) Token: 0x06000C92 RID: 3218 RVA: 0x00040C6C File Offset: 0x0003EE6C
		public string EncyclopediaLink
		{
			get
			{
				return Campaign.Current.EncyclopediaManager.GetIdentifier(typeof(Kingdom)) + "-" + base.StringId;
			}
		}

		// Token: 0x17000307 RID: 775
		// (get) Token: 0x06000C93 RID: 3219 RVA: 0x00040C97 File Offset: 0x0003EE97
		public TextObject EncyclopediaLinkWithName
		{
			get
			{
				return HyperlinkTexts.GetKingdomHyperlinkText(this.EncyclopediaLink, this.InformalName);
			}
		}

		// Token: 0x17000308 RID: 776
		// (get) Token: 0x06000C94 RID: 3220 RVA: 0x00040CAA File Offset: 0x0003EEAA
		public MBReadOnlyList<KingdomDecision> UnresolvedDecisions
		{
			get
			{
				return this._unresolvedDecisions;
			}
		}

		// Token: 0x17000309 RID: 777
		// (get) Token: 0x06000C95 RID: 3221 RVA: 0x00040CB2 File Offset: 0x0003EEB2
		// (set) Token: 0x06000C96 RID: 3222 RVA: 0x00040CBA File Offset: 0x0003EEBA
		[SaveableProperty(6)]
		public CultureObject Culture { get; private set; }

		// Token: 0x1700030A RID: 778
		// (get) Token: 0x06000C97 RID: 3223 RVA: 0x00040CC3 File Offset: 0x0003EEC3
		// (set) Token: 0x06000C98 RID: 3224 RVA: 0x00040CCB File Offset: 0x0003EECB
		[SaveableProperty(17)]
		public Settlement InitialHomeLand { get; private set; }

		// Token: 0x1700030B RID: 779
		// (get) Token: 0x06000C99 RID: 3225 RVA: 0x00040CD4 File Offset: 0x0003EED4
		public Vec2 InitialPosition
		{
			get
			{
				return this.InitialHomeLand.GatePosition;
			}
		}

		// Token: 0x1700030C RID: 780
		// (get) Token: 0x06000C9A RID: 3226 RVA: 0x00040CE1 File Offset: 0x0003EEE1
		public bool IsMapFaction
		{
			get
			{
				return true;
			}
		}

		// Token: 0x1700030D RID: 781
		// (get) Token: 0x06000C9B RID: 3227 RVA: 0x00040CE4 File Offset: 0x0003EEE4
		// (set) Token: 0x06000C9C RID: 3228 RVA: 0x00040CEC File Offset: 0x0003EEEC
		[SaveableProperty(8)]
		public uint LabelColor { get; private set; }

		// Token: 0x1700030E RID: 782
		// (get) Token: 0x06000C9D RID: 3229 RVA: 0x00040CF5 File Offset: 0x0003EEF5
		// (set) Token: 0x06000C9E RID: 3230 RVA: 0x00040CFD File Offset: 0x0003EEFD
		[SaveableProperty(9)]
		public uint Color { get; private set; }

		// Token: 0x1700030F RID: 783
		// (get) Token: 0x06000C9F RID: 3231 RVA: 0x00040D06 File Offset: 0x0003EF06
		// (set) Token: 0x06000CA0 RID: 3232 RVA: 0x00040D0E File Offset: 0x0003EF0E
		[SaveableProperty(10)]
		public uint Color2 { get; private set; }

		// Token: 0x17000310 RID: 784
		// (get) Token: 0x06000CA1 RID: 3233 RVA: 0x00040D17 File Offset: 0x0003EF17
		// (set) Token: 0x06000CA2 RID: 3234 RVA: 0x00040D1F File Offset: 0x0003EF1F
		[SaveableProperty(11)]
		public uint AlternativeColor { get; private set; }

		// Token: 0x17000311 RID: 785
		// (get) Token: 0x06000CA3 RID: 3235 RVA: 0x00040D28 File Offset: 0x0003EF28
		// (set) Token: 0x06000CA4 RID: 3236 RVA: 0x00040D30 File Offset: 0x0003EF30
		[SaveableProperty(12)]
		public uint AlternativeColor2 { get; private set; }

		// Token: 0x17000312 RID: 786
		// (get) Token: 0x06000CA5 RID: 3237 RVA: 0x00040D39 File Offset: 0x0003EF39
		// (set) Token: 0x06000CA6 RID: 3238 RVA: 0x00040D41 File Offset: 0x0003EF41
		[SaveableProperty(13)]
		public uint PrimaryBannerColor { get; private set; }

		// Token: 0x17000313 RID: 787
		// (get) Token: 0x06000CA7 RID: 3239 RVA: 0x00040D4A File Offset: 0x0003EF4A
		// (set) Token: 0x06000CA8 RID: 3240 RVA: 0x00040D52 File Offset: 0x0003EF52
		[SaveableProperty(14)]
		public uint SecondaryBannerColor { get; private set; }

		// Token: 0x17000314 RID: 788
		// (get) Token: 0x06000CA9 RID: 3241 RVA: 0x00040D5B File Offset: 0x0003EF5B
		// (set) Token: 0x06000CAA RID: 3242 RVA: 0x00040D63 File Offset: 0x0003EF63
		[SaveableProperty(15)]
		public float MainHeroCrimeRating { get; set; }

		// Token: 0x17000315 RID: 789
		// (get) Token: 0x06000CAB RID: 3243 RVA: 0x00040D6C File Offset: 0x0003EF6C
		public IEnumerable<StanceLink> Stances
		{
			get
			{
				return this._stances;
			}
		}

		// Token: 0x17000316 RID: 790
		// (get) Token: 0x06000CAC RID: 3244 RVA: 0x00040D74 File Offset: 0x0003EF74
		public MBReadOnlyList<Town> Fiefs
		{
			get
			{
				return this._fiefsCache;
			}
		}

		// Token: 0x17000317 RID: 791
		// (get) Token: 0x06000CAD RID: 3245 RVA: 0x00040D7C File Offset: 0x0003EF7C
		public MBReadOnlyList<Village> Villages
		{
			get
			{
				return this._villagesCache;
			}
		}

		// Token: 0x17000318 RID: 792
		// (get) Token: 0x06000CAE RID: 3246 RVA: 0x00040D84 File Offset: 0x0003EF84
		public MBReadOnlyList<Settlement> Settlements
		{
			get
			{
				return this._settlementsCache;
			}
		}

		// Token: 0x17000319 RID: 793
		// (get) Token: 0x06000CAF RID: 3247 RVA: 0x00040D8C File Offset: 0x0003EF8C
		public MBReadOnlyList<Hero> Heroes
		{
			get
			{
				return this._heroesCache;
			}
		}

		// Token: 0x1700031A RID: 794
		// (get) Token: 0x06000CB0 RID: 3248 RVA: 0x00040D94 File Offset: 0x0003EF94
		public MBReadOnlyList<Hero> Lords
		{
			get
			{
				return this._lordsCache;
			}
		}

		// Token: 0x1700031B RID: 795
		// (get) Token: 0x06000CB1 RID: 3249 RVA: 0x00040D9C File Offset: 0x0003EF9C
		public MBReadOnlyList<WarPartyComponent> WarPartyComponents
		{
			get
			{
				return this._warPartyComponentsCache;
			}
		}

		// Token: 0x1700031C RID: 796
		// (get) Token: 0x06000CB2 RID: 3250 RVA: 0x00040DA4 File Offset: 0x0003EFA4
		public float DailyCrimeRatingChange
		{
			get
			{
				return Campaign.Current.Models.CrimeModel.GetDailyCrimeRatingChange(this, false).ResultNumber;
			}
		}

		// Token: 0x1700031D RID: 797
		// (get) Token: 0x06000CB3 RID: 3251 RVA: 0x00040DCF File Offset: 0x0003EFCF
		public ExplainedNumber DailyCrimeRatingChangeExplained
		{
			get
			{
				return Campaign.Current.Models.CrimeModel.GetDailyCrimeRatingChange(this, true);
			}
		}

		// Token: 0x1700031E RID: 798
		// (get) Token: 0x06000CB4 RID: 3252 RVA: 0x00040DE7 File Offset: 0x0003EFE7
		public CharacterObject BasicTroop
		{
			get
			{
				return this.Culture.BasicTroop;
			}
		}

		// Token: 0x1700031F RID: 799
		// (get) Token: 0x06000CB5 RID: 3253 RVA: 0x00040DF4 File Offset: 0x0003EFF4
		public Hero Leader
		{
			get
			{
				Clan rulingClan = this._rulingClan;
				if (rulingClan == null)
				{
					return null;
				}
				return rulingClan.Leader;
			}
		}

		// Token: 0x17000320 RID: 800
		// (get) Token: 0x06000CB6 RID: 3254 RVA: 0x00040E07 File Offset: 0x0003F007
		// (set) Token: 0x06000CB7 RID: 3255 RVA: 0x00040E0F File Offset: 0x0003F00F
		[SaveableProperty(16)]
		public Banner Banner { get; private set; }

		// Token: 0x17000321 RID: 801
		// (get) Token: 0x06000CB8 RID: 3256 RVA: 0x00040E18 File Offset: 0x0003F018
		public bool IsBanditFaction
		{
			get
			{
				return false;
			}
		}

		// Token: 0x17000322 RID: 802
		// (get) Token: 0x06000CB9 RID: 3257 RVA: 0x00040E1B File Offset: 0x0003F01B
		public bool IsMinorFaction
		{
			get
			{
				return false;
			}
		}

		// Token: 0x17000323 RID: 803
		// (get) Token: 0x06000CBA RID: 3258 RVA: 0x00040E1E File Offset: 0x0003F01E
		bool IFaction.IsKingdomFaction
		{
			get
			{
				return true;
			}
		}

		// Token: 0x17000324 RID: 804
		// (get) Token: 0x06000CBB RID: 3259 RVA: 0x00040E21 File Offset: 0x0003F021
		public bool IsRebelClan
		{
			get
			{
				return false;
			}
		}

		// Token: 0x17000325 RID: 805
		// (get) Token: 0x06000CBC RID: 3260 RVA: 0x00040E24 File Offset: 0x0003F024
		public bool IsClan
		{
			get
			{
				return false;
			}
		}

		// Token: 0x17000326 RID: 806
		// (get) Token: 0x06000CBD RID: 3261 RVA: 0x00040E27 File Offset: 0x0003F027
		public bool IsOutlaw
		{
			get
			{
				return false;
			}
		}

		// Token: 0x17000327 RID: 807
		// (get) Token: 0x06000CBE RID: 3262 RVA: 0x00040E2A File Offset: 0x0003F02A
		public MBReadOnlyList<Clan> Clans
		{
			get
			{
				return this._clans;
			}
		}

		// Token: 0x17000328 RID: 808
		// (get) Token: 0x06000CBF RID: 3263 RVA: 0x00040E32 File Offset: 0x0003F032
		// (set) Token: 0x06000CC0 RID: 3264 RVA: 0x00040E3A File Offset: 0x0003F03A
		public Clan RulingClan
		{
			get
			{
				return this._rulingClan;
			}
			set
			{
				this._rulingClan = value;
			}
		}

		// Token: 0x17000329 RID: 809
		// (get) Token: 0x06000CC1 RID: 3265 RVA: 0x00040E43 File Offset: 0x0003F043
		// (set) Token: 0x06000CC2 RID: 3266 RVA: 0x00040E4B File Offset: 0x0003F04B
		[SaveableProperty(19)]
		public int LastArmyCreationDay { get; private set; }

		// Token: 0x1700032A RID: 810
		// (get) Token: 0x06000CC3 RID: 3267 RVA: 0x00040E54 File Offset: 0x0003F054
		public MBReadOnlyList<Army> Armies
		{
			get
			{
				return this._armies;
			}
		}

		// Token: 0x06000CC4 RID: 3268 RVA: 0x00040E5C File Offset: 0x0003F05C
		public override string ToString()
		{
			return this.Name.ToString();
		}

		// Token: 0x1700032B RID: 811
		// (get) Token: 0x06000CC5 RID: 3269 RVA: 0x00040E6C File Offset: 0x0003F06C
		public float TotalStrength
		{
			get
			{
				float num = 0f;
				int count = this._clans.Count;
				for (int i = 0; i < count; i++)
				{
					num += this._clans[i].TotalStrength;
				}
				return num;
			}
		}

		// Token: 0x1700032C RID: 812
		// (get) Token: 0x06000CC6 RID: 3270 RVA: 0x00040EAC File Offset: 0x0003F0AC
		// (set) Token: 0x06000CC7 RID: 3271 RVA: 0x00040EB4 File Offset: 0x0003F0B4
		[CachedData]
		internal bool _midPointCalculated { get; set; }

		// Token: 0x1700032D RID: 813
		// (get) Token: 0x06000CC8 RID: 3272 RVA: 0x00040EBD File Offset: 0x0003F0BD
		public float DistanceToClosestNonAllyFortification
		{
			get
			{
				if (this._distanceToClosestNonAllyFortificationCacheDirty)
				{
					this._distanceToClosestNonAllyFortificationCache = FactionHelper.GetDistanceToClosestNonAllyFortificationOfFaction(this);
					this._distanceToClosestNonAllyFortificationCacheDirty = false;
				}
				return this._distanceToClosestNonAllyFortificationCache;
			}
		}

		// Token: 0x1700032E RID: 814
		// (get) Token: 0x06000CC9 RID: 3273 RVA: 0x00040EE0 File Offset: 0x0003F0E0
		public IList<PolicyObject> ActivePolicies
		{
			get
			{
				return this._activePolicies;
			}
		}

		// Token: 0x1700032F RID: 815
		// (get) Token: 0x06000CCA RID: 3274 RVA: 0x00040EE8 File Offset: 0x0003F0E8
		public static MBReadOnlyList<Kingdom> All
		{
			get
			{
				return Campaign.Current.Kingdoms;
			}
		}

		// Token: 0x17000330 RID: 816
		// (get) Token: 0x06000CCB RID: 3275 RVA: 0x00040EF4 File Offset: 0x0003F0F4
		// (set) Token: 0x06000CCC RID: 3276 RVA: 0x00040EFC File Offset: 0x0003F0FC
		[SaveableProperty(28)]
		public CampaignTime LastKingdomDecisionConclusionDate { get; private set; }

		// Token: 0x17000331 RID: 817
		// (get) Token: 0x06000CCD RID: 3277 RVA: 0x00040F05 File Offset: 0x0003F105
		public bool IsEliminated
		{
			get
			{
				return this._isEliminated;
			}
		}

		// Token: 0x17000332 RID: 818
		// (get) Token: 0x06000CCE RID: 3278 RVA: 0x00040F0D File Offset: 0x0003F10D
		// (set) Token: 0x06000CCF RID: 3279 RVA: 0x00040F15 File Offset: 0x0003F115
		[SaveableProperty(41)]
		public CampaignTime LastMercenaryOfferTime { get; set; }

		// Token: 0x17000333 RID: 819
		// (get) Token: 0x06000CD0 RID: 3280 RVA: 0x00040F1E File Offset: 0x0003F11E
		public IFaction MapFaction
		{
			get
			{
				return this;
			}
		}

		// Token: 0x17000334 RID: 820
		// (get) Token: 0x06000CD1 RID: 3281 RVA: 0x00040F21 File Offset: 0x0003F121
		// (set) Token: 0x06000CD2 RID: 3282 RVA: 0x00040F29 File Offset: 0x0003F129
		[SaveableProperty(50)]
		public CampaignTime NotAttackableByPlayerUntilTime { get; set; }

		// Token: 0x17000335 RID: 821
		// (get) Token: 0x06000CD3 RID: 3283 RVA: 0x00040F32 File Offset: 0x0003F132
		// (set) Token: 0x06000CD4 RID: 3284 RVA: 0x00040F3A File Offset: 0x0003F13A
		public float Aggressiveness
		{
			get
			{
				return this._aggressiveness;
			}
			internal set
			{
				this._aggressiveness = MathF.Clamp(value, 0f, 100f);
			}
		}

		// Token: 0x17000336 RID: 822
		// (get) Token: 0x06000CD5 RID: 3285 RVA: 0x00040F52 File Offset: 0x0003F152
		public IEnumerable<MobileParty> AllParties
		{
			get
			{
				foreach (MobileParty mobileParty in Campaign.Current.MobileParties)
				{
					if (mobileParty.MapFaction == this)
					{
						yield return mobileParty;
					}
				}
				List<MobileParty>.Enumerator enumerator = default(List<MobileParty>.Enumerator);
				yield break;
				yield break;
			}
		}

		// Token: 0x17000337 RID: 823
		// (get) Token: 0x06000CD6 RID: 3286 RVA: 0x00040F62 File Offset: 0x0003F162
		public Settlement FactionMidSettlement
		{
			get
			{
				if (!this._midPointCalculated)
				{
					this.UpdateFactionMidPoint();
				}
				return this._kingdomMidSettlement;
			}
		}

		// Token: 0x17000338 RID: 824
		// (get) Token: 0x06000CD7 RID: 3287 RVA: 0x00040F78 File Offset: 0x0003F178
		// (set) Token: 0x06000CD8 RID: 3288 RVA: 0x00040F80 File Offset: 0x0003F180
		[SaveableProperty(70)]
		public int MercenaryWallet { get; internal set; }

		// Token: 0x17000339 RID: 825
		// (get) Token: 0x06000CD9 RID: 3289 RVA: 0x00040F89 File Offset: 0x0003F189
		// (set) Token: 0x06000CDA RID: 3290 RVA: 0x00040F91 File Offset: 0x0003F191
		public int TributeWallet
		{
			get
			{
				return this._tributeWallet;
			}
			set
			{
				this._tributeWallet = value;
			}
		}

		// Token: 0x1700033A RID: 826
		// (get) Token: 0x06000CDB RID: 3291 RVA: 0x00040F9A File Offset: 0x0003F19A
		// (set) Token: 0x06000CDC RID: 3292 RVA: 0x00040FA2 File Offset: 0x0003F1A2
		public int KingdomBudgetWallet
		{
			get
			{
				return this._kingdomBudgetWallet;
			}
			set
			{
				this._kingdomBudgetWallet = value;
			}
		}

		// Token: 0x06000CDD RID: 3293 RVA: 0x00040FAC File Offset: 0x0003F1AC
		public Kingdom()
		{
			this._activePolicies = new MBList<PolicyObject>();
			this._armies = new MBList<Army>();
			this.InitializeCachedLists();
			this.EncyclopediaText = TextObject.Empty;
			this.EncyclopediaTitle = TextObject.Empty;
			this.EncyclopediaRulerTitle = TextObject.Empty;
			float randomFloat = MBRandom.RandomFloat;
			float randomFloat2 = MBRandom.RandomFloat;
			this.PoliticalStagnation = 10 + (int)(randomFloat * randomFloat2 * 100f);
			this._midPointCalculated = false;
			this._distanceToClosestNonAllyFortificationCacheDirty = true;
			this._isEliminated = false;
			this.NotAttackableByPlayerUntilTime = CampaignTime.Zero;
			this.LastArmyCreationDay = (int)CampaignTime.Now.ToDays;
			CampaignEvents.OnNewGameCreatedEvent.AddNonSerializedListener(this, new Action<CampaignGameStarter>(this.OnNewGameCreated));
		}

		// Token: 0x06000CDE RID: 3294 RVA: 0x00041078 File Offset: 0x0003F278
		public static Kingdom CreateKingdom(string stringID)
		{
			stringID = Campaign.Current.CampaignObjectManager.FindNextUniqueStringId<Kingdom>(stringID);
			Kingdom kingdom = new Kingdom();
			kingdom.StringId = stringID;
			Campaign.Current.CampaignObjectManager.AddKingdom(kingdom);
			return kingdom;
		}

		// Token: 0x06000CDF RID: 3295 RVA: 0x000410B8 File Offset: 0x0003F2B8
		public void InitializeKingdom(TextObject name, TextObject informalName, CultureObject culture, Banner banner, uint kingdomColor1, uint kingdomColor2, Settlement initialHomeland, TextObject encyclopediaText, TextObject encyclopediaTitle, TextObject encyclopediaRulerTitle)
		{
			this.ChangeKingdomName(name, informalName);
			this.Culture = culture;
			this.Banner = banner;
			this.Color = kingdomColor1;
			this.Color2 = kingdomColor2;
			this.PrimaryBannerColor = this.Color;
			this.SecondaryBannerColor = this.Color2;
			this.InitialHomeLand = initialHomeland;
			this.PoliticalStagnation = 100;
			this.EncyclopediaText = encyclopediaText;
			this.EncyclopediaTitle = encyclopediaTitle;
			this.EncyclopediaRulerTitle = encyclopediaRulerTitle;
			foreach (PolicyObject policy in this.Culture.DefaultPolicyList)
			{
				this.AddPolicy(policy);
			}
		}

		// Token: 0x06000CE0 RID: 3296 RVA: 0x00041178 File Offset: 0x0003F378
		private void InitializeCachedLists()
		{
			this._clans = new MBList<Clan>();
			this._stances = new List<StanceLink>();
			this._fiefsCache = new MBList<Town>();
			this._villagesCache = new MBList<Village>();
			this._settlementsCache = new MBList<Settlement>();
			this._heroesCache = new MBList<Hero>();
			this._lordsCache = new MBList<Hero>();
			this._warPartyComponentsCache = new MBList<WarPartyComponent>();
		}

		// Token: 0x06000CE1 RID: 3297 RVA: 0x000411DD File Offset: 0x0003F3DD
		public void ChangeKingdomName(TextObject name, TextObject informalName)
		{
			this.Name = name;
			this.InformalName = informalName;
		}

		// Token: 0x06000CE2 RID: 3298 RVA: 0x000411ED File Offset: 0x0003F3ED
		public void OnNewGameCreated(CampaignGameStarter starter)
		{
			this.InitialHomeLand = this.Leader.HomeSettlement;
		}

		// Token: 0x06000CE3 RID: 3299 RVA: 0x00041200 File Offset: 0x0003F400
		[LoadInitializationCallback]
		private void OnLoad(MetaData metaData, ObjectLoadData objectLoadData)
		{
			this.InitializeCachedLists();
		}

		// Token: 0x06000CE4 RID: 3300 RVA: 0x00041208 File Offset: 0x0003F408
		protected override void AfterLoad()
		{
			for (int i = this._activePolicies.Count - 1; i >= 0; i--)
			{
				if (this._activePolicies[i] == null || !this._activePolicies[i].IsReady)
				{
					this._activePolicies.RemoveAt(i);
				}
			}
			for (int j = this.Clans.Count - 1; j >= 0; j--)
			{
				Clan clan = this.Clans[j];
				if (clan.GetStanceWith(this).IsAtConstantWar)
				{
					foreach (WarPartyComponent warPartyComponent in clan.WarPartyComponents.ToList<WarPartyComponent>())
					{
						if (warPartyComponent.MobileParty.MapEvent != null && (warPartyComponent.MobileParty.Army == null || warPartyComponent.MobileParty.Army.LeaderParty == warPartyComponent.MobileParty))
						{
							warPartyComponent.MobileParty.MapEvent.FinalizeEvent();
						}
					}
				}
			}
		}

		// Token: 0x06000CE5 RID: 3301 RVA: 0x00041320 File Offset: 0x0003F520
		public bool IsAtWarWith(IFaction other)
		{
			return FactionManager.IsAtWarAgainstFaction(this, other);
		}

		// Token: 0x06000CE6 RID: 3302 RVA: 0x00041329 File Offset: 0x0003F529
		internal void AddStanceInternal(StanceLink stanceLink)
		{
			this._stances.Add(stanceLink);
		}

		// Token: 0x06000CE7 RID: 3303 RVA: 0x00041337 File Offset: 0x0003F537
		internal void RemoveStanceInternal(StanceLink stanceLink)
		{
			this._stances.Remove(stanceLink);
		}

		// Token: 0x06000CE8 RID: 3304 RVA: 0x00041346 File Offset: 0x0003F546
		public StanceLink GetStanceWith(IFaction other)
		{
			return FactionManager.Instance.GetStanceLinkInternal(this, other);
		}

		// Token: 0x06000CE9 RID: 3305 RVA: 0x00041354 File Offset: 0x0003F554
		internal void AddArmyInternal(Army army)
		{
			this._armies.Add(army);
		}

		// Token: 0x06000CEA RID: 3306 RVA: 0x00041362 File Offset: 0x0003F562
		internal void RemoveArmyInternal(Army army)
		{
			this._armies.Remove(army);
		}

		// Token: 0x06000CEB RID: 3307 RVA: 0x00041374 File Offset: 0x0003F574
		public void CreateArmy(Hero armyLeader, Settlement targetSettlement, Army.ArmyTypes selectedArmyType)
		{
			if (!armyLeader.IsActive)
			{
				Debug.Print(string.Format("Failed to create army, leader - {0}: {1} is inactive", (armyLeader != null) ? armyLeader.StringId : null, (armyLeader != null) ? armyLeader.Name : null), 0, Debug.DebugColor.White, 17592186044416UL);
				return;
			}
			if (((armyLeader != null) ? armyLeader.PartyBelongedTo.LeaderHero : null) != null)
			{
				Army army = new Army(this, armyLeader.PartyBelongedTo, selectedArmyType)
				{
					AIBehavior = Army.AIBehaviorFlags.Gathering
				};
				army.Gather(targetSettlement);
				this.LastArmyCreationDay = (int)CampaignTime.Now.ToDays;
				CampaignEventDispatcher.Instance.OnArmyCreated(army);
			}
			if (armyLeader == Hero.MainHero)
			{
				MapState mapState = Game.Current.GameStateManager.GameStates.Single((GameState S) => S is MapState) as MapState;
				if (mapState == null)
				{
					return;
				}
				mapState.OnArmyCreated(MobileParty.MainParty);
			}
		}

		// Token: 0x06000CEC RID: 3308 RVA: 0x0004145C File Offset: 0x0003F65C
		private void UpdateFactionMidPoint()
		{
			this._kingdomMidSettlement = FactionHelper.FactionMidSettlement(this);
			this._midPointCalculated = (this._kingdomMidSettlement != null);
		}

		// Token: 0x06000CED RID: 3309 RVA: 0x0004147C File Offset: 0x0003F67C
		public void AddDecision(KingdomDecision kingdomDecision, bool ignoreInfluenceCost = false)
		{
			if (!ignoreInfluenceCost)
			{
				Clan proposerClan = kingdomDecision.ProposerClan;
				int influenceCost = kingdomDecision.GetInfluenceCost(proposerClan);
				ChangeClanInfluenceAction.Apply(proposerClan, (float)(-(float)influenceCost));
			}
			bool flag;
			if (!kingdomDecision.DetermineChooser().Leader.IsHumanPlayerCharacter)
			{
				flag = kingdomDecision.DetermineSupporters().Any((Supporter x) => x.IsPlayer);
			}
			else
			{
				flag = true;
			}
			bool isPlayerInvolved = flag;
			CampaignEventDispatcher.Instance.OnKingdomDecisionAdded(kingdomDecision, isPlayerInvolved);
			if (kingdomDecision.Kingdom != Clan.PlayerClan.Kingdom)
			{
				new KingdomElection(kingdomDecision).StartElection();
				return;
			}
			this._unresolvedDecisions.Add(kingdomDecision);
		}

		// Token: 0x06000CEE RID: 3310 RVA: 0x0004151A File Offset: 0x0003F71A
		public void RemoveDecision(KingdomDecision kingdomDecision)
		{
			this._unresolvedDecisions.Remove(kingdomDecision);
		}

		// Token: 0x06000CEF RID: 3311 RVA: 0x00041529 File Offset: 0x0003F729
		public void OnKingdomDecisionConcluded()
		{
			this.LastKingdomDecisionConclusionDate = CampaignTime.Now;
		}

		// Token: 0x06000CF0 RID: 3312 RVA: 0x00041536 File Offset: 0x0003F736
		public void AddPolicy(PolicyObject policy)
		{
			if (!this._activePolicies.Contains(policy))
			{
				this._activePolicies.Add(policy);
			}
		}

		// Token: 0x06000CF1 RID: 3313 RVA: 0x00041552 File Offset: 0x0003F752
		public void RemovePolicy(PolicyObject policy)
		{
			if (this._activePolicies.Contains(policy))
			{
				this._activePolicies.Remove(policy);
			}
		}

		// Token: 0x06000CF2 RID: 3314 RVA: 0x00041570 File Offset: 0x0003F770
		public bool HasPolicy(PolicyObject policy)
		{
			for (int i = 0; i < this._activePolicies.Count; i++)
			{
				if (this._activePolicies[i] == policy)
				{
					return true;
				}
			}
			return false;
		}

		// Token: 0x06000CF3 RID: 3315 RVA: 0x000415A8 File Offset: 0x0003F7A8
		public override void Deserialize(MBObjectManager objectManager, XmlNode node)
		{
			base.Deserialize(objectManager, node);
			this.EncyclopediaText = ((node.Attributes["text"] != null) ? new TextObject(node.Attributes["text"].Value, null) : TextObject.Empty);
			this.EncyclopediaTitle = ((node.Attributes["title"] != null) ? new TextObject(node.Attributes["title"].Value, null) : TextObject.Empty);
			this.EncyclopediaRulerTitle = ((node.Attributes["ruler_title"] != null) ? new TextObject(node.Attributes["ruler_title"].Value, null) : TextObject.Empty);
			this.InitializeKingdom(new TextObject(node.Attributes["name"].Value, null), (node.Attributes["short_name"] != null) ? new TextObject(node.Attributes["short_name"].Value, null) : new TextObject(node.Attributes["name"].Value, null), (CultureObject)objectManager.ReadObjectReferenceFromXml("culture", typeof(CultureObject), node), null, (node.Attributes["color"] == null) ? 0U : Convert.ToUInt32(node.Attributes["color"].Value, 16), (node.Attributes["color2"] == null) ? 0U : Convert.ToUInt32(node.Attributes["color2"].Value, 16), null, this.EncyclopediaText, this.EncyclopediaTitle, this.EncyclopediaRulerTitle);
			Hero hero = objectManager.ReadObjectReferenceFromXml("owner", typeof(Hero), node) as Hero;
			this.RulingClan = ((hero != null) ? hero.Clan : null);
			this.LabelColor = ((node.Attributes["label_color"] == null) ? 0U : Convert.ToUInt32(node.Attributes["label_color"].Value, 16));
			this.AlternativeColor = ((node.Attributes["alternative_color"] == null) ? 0U : Convert.ToUInt32(node.Attributes["alternative_color"].Value, 16));
			this.AlternativeColor2 = ((node.Attributes["alternative_color2"] == null) ? 0U : Convert.ToUInt32(node.Attributes["alternative_color2"].Value, 16));
			this.PrimaryBannerColor = ((node.Attributes["primary_banner_color"] == null) ? 0U : Convert.ToUInt32(node.Attributes["primary_banner_color"].Value, 16));
			this.SecondaryBannerColor = ((node.Attributes["secondary_banner_color"] == null) ? 0U : Convert.ToUInt32(node.Attributes["secondary_banner_color"].Value, 16));
			if (node.Attributes["banner_key"] != null)
			{
				this.Banner = new Banner();
				this.Banner.Deserialize(node.Attributes["banner_key"].Value);
			}
			else
			{
				this.Banner = Banner.CreateRandomClanBanner(base.StringId.GetDeterministicHashCode());
			}
			foreach (object obj in node.ChildNodes)
			{
				XmlNode xmlNode = (XmlNode)obj;
				if (xmlNode.Name == "relationships")
				{
					using (IEnumerator enumerator2 = xmlNode.ChildNodes.GetEnumerator())
					{
						while (enumerator2.MoveNext())
						{
							object obj2 = enumerator2.Current;
							XmlNode xmlNode2 = (XmlNode)obj2;
							IFaction faction;
							if (xmlNode2.Attributes["clan"] != null)
							{
								faction = (Clan)objectManager.ReadObjectReferenceFromXml("clan", typeof(Clan), xmlNode2);
							}
							else
							{
								faction = (Kingdom)objectManager.ReadObjectReferenceFromXml("kingdom", typeof(Kingdom), xmlNode2);
							}
							int num = Convert.ToInt32(xmlNode2.Attributes["value"].InnerText);
							if (num > 0)
							{
								FactionManager.DeclareAlliance(this, faction);
							}
							else if (num < 0)
							{
								FactionManager.DeclareWar(this, faction, false);
							}
							else
							{
								FactionManager.SetNeutral(this, faction);
							}
							if (xmlNode2.Attributes["isAtWar"] != null && Convert.ToBoolean(xmlNode2.Attributes["isAtWar"].Value))
							{
								FactionManager.DeclareWar(this, faction, false);
							}
						}
						continue;
					}
				}
				if (xmlNode.Name == "policies")
				{
					foreach (object obj3 in xmlNode.ChildNodes)
					{
						XmlNode xmlNode3 = (XmlNode)obj3;
						PolicyObject @object = Game.Current.ObjectManager.GetObject<PolicyObject>(xmlNode3.Attributes["id"].Value);
						if (@object != null)
						{
							this.AddPolicy(@object);
						}
					}
				}
			}
		}

		// Token: 0x06000CF4 RID: 3316 RVA: 0x00041B24 File Offset: 0x0003FD24
		internal void AddClanInternal(Clan clan)
		{
			this._clans.Add(clan);
			this._midPointCalculated = false;
			this._distanceToClosestNonAllyFortificationCacheDirty = true;
		}

		// Token: 0x06000CF5 RID: 3317 RVA: 0x00041B40 File Offset: 0x0003FD40
		internal void RemoveClanInternal(Clan clan)
		{
			this._clans.Remove(clan);
			this._midPointCalculated = false;
			this._distanceToClosestNonAllyFortificationCacheDirty = true;
		}

		// Token: 0x06000CF6 RID: 3318 RVA: 0x00041B60 File Offset: 0x0003FD60
		public void OnFortificationAdded(Town fief)
		{
			this._fiefsCache.Add(fief);
			this._settlementsCache.Add(fief.Settlement);
			foreach (Village village in fief.Settlement.BoundVillages)
			{
				this.OnBoundVillageAdded(village);
			}
		}

		// Token: 0x06000CF7 RID: 3319 RVA: 0x00041BD8 File Offset: 0x0003FDD8
		public void OnFiefRemoved(Town fief)
		{
			this._fiefsCache.Remove(fief);
			this._settlementsCache.Remove(fief.Settlement);
			foreach (Village village in fief.Settlement.BoundVillages)
			{
				this._villagesCache.Remove(village);
				this._settlementsCache.Remove(village.Settlement);
			}
		}

		// Token: 0x06000CF8 RID: 3320 RVA: 0x00041C68 File Offset: 0x0003FE68
		internal void OnBoundVillageAdded(Village village)
		{
			this._villagesCache.Add(village);
			this._settlementsCache.Add(village.Settlement);
		}

		// Token: 0x06000CF9 RID: 3321 RVA: 0x00041C87 File Offset: 0x0003FE87
		public void OnHeroAdded(Hero hero)
		{
			this._heroesCache.Add(hero);
			if (hero.Occupation == Occupation.Lord)
			{
				this._lordsCache.Add(hero);
			}
		}

		// Token: 0x06000CFA RID: 3322 RVA: 0x00041CAA File Offset: 0x0003FEAA
		public void OnHeroRemoved(Hero hero)
		{
			this._heroesCache.Remove(hero);
			if (hero.Occupation == Occupation.Lord)
			{
				this._lordsCache.Remove(hero);
			}
		}

		// Token: 0x06000CFB RID: 3323 RVA: 0x00041CCF File Offset: 0x0003FECF
		public void OnWarPartyAdded(WarPartyComponent warPartyComponent)
		{
			this._warPartyComponentsCache.Add(warPartyComponent);
		}

		// Token: 0x06000CFC RID: 3324 RVA: 0x00041CDD File Offset: 0x0003FEDD
		public void OnWarPartyRemoved(WarPartyComponent warPartyComponent)
		{
			this._warPartyComponentsCache.Remove(warPartyComponent);
		}

		// Token: 0x06000CFD RID: 3325 RVA: 0x00041CEC File Offset: 0x0003FEEC
		public void ReactivateKingdom()
		{
			this._isEliminated = false;
		}

		// Token: 0x06000CFE RID: 3326 RVA: 0x00041CF5 File Offset: 0x0003FEF5
		internal void DeactivateKingdom()
		{
			this._isEliminated = true;
		}

		// Token: 0x06000CFF RID: 3327 RVA: 0x00041CFE File Offset: 0x0003FEFE
		string IFaction.get_StringId()
		{
			return base.StringId;
		}

		// Token: 0x06000D00 RID: 3328 RVA: 0x00041D06 File Offset: 0x0003FF06
		MBGUID IFaction.get_Id()
		{
			return base.Id;
		}

		// Token: 0x040003A3 RID: 931
		[SaveableField(10)]
		private MBList<KingdomDecision> _unresolvedDecisions = new MBList<KingdomDecision>();

		// Token: 0x040003AE RID: 942
		[CachedData]
		private List<StanceLink> _stances;

		// Token: 0x040003AF RID: 943
		[CachedData]
		private MBList<Town> _fiefsCache;

		// Token: 0x040003B0 RID: 944
		[CachedData]
		private MBList<Village> _villagesCache;

		// Token: 0x040003B1 RID: 945
		[CachedData]
		private MBList<Settlement> _settlementsCache;

		// Token: 0x040003B2 RID: 946
		[CachedData]
		private MBList<Hero> _heroesCache;

		// Token: 0x040003B3 RID: 947
		[CachedData]
		private MBList<Hero> _lordsCache;

		// Token: 0x040003B4 RID: 948
		[CachedData]
		private MBList<WarPartyComponent> _warPartyComponentsCache;

		// Token: 0x040003B6 RID: 950
		[CachedData]
		private MBList<Clan> _clans;

		// Token: 0x040003B7 RID: 951
		[SaveableField(18)]
		private Clan _rulingClan;

		// Token: 0x040003B9 RID: 953
		[SaveableField(20)]
		private MBList<Army> _armies;

		// Token: 0x040003BB RID: 955
		[CachedData]
		private float _distanceToClosestNonAllyFortificationCache;

		// Token: 0x040003BC RID: 956
		[CachedData]
		internal bool _distanceToClosestNonAllyFortificationCacheDirty = true;

		// Token: 0x040003BD RID: 957
		[SaveableField(23)]
		public int PoliticalStagnation;

		// Token: 0x040003BE RID: 958
		[SaveableField(26)]
		private MBList<PolicyObject> _activePolicies;

		// Token: 0x040003C0 RID: 960
		[SaveableField(29)]
		private bool _isEliminated;

		// Token: 0x040003C3 RID: 963
		[SaveableField(60)]
		private float _aggressiveness;

		// Token: 0x040003C4 RID: 964
		[CachedData]
		private Settlement _kingdomMidSettlement;

		// Token: 0x040003C6 RID: 966
		[SaveableField(80)]
		private int _tributeWallet;

		// Token: 0x040003C7 RID: 967
		[SaveableField(81)]
		private int _kingdomBudgetWallet;
	}
}
